<!DOCTYPE html>
<html lang="en">
<head>
  <meta charset="UTF-8">
  <meta name="viewport" content="width=device-width, initial-scale=1.0">
  <title>Document</title>
</head>
<body>
  <script>
    // 1. 创建日期对象
    // const date = new Date();
    // console.log(date); // Mon Sep 23 2024 10:51:18 GMT+0800 (中国标准时间)
    
    // new Date()允许接受一个时间戳作为参数
    // 时间戳是一个13位的数字, 是1970年1月1日到现在的毫秒数
    // js中的时间戳是毫秒数，其他语言的时间戳可能是秒数(10位)
    // console.log(date.getTime()) // 1727060156936 当前的时间戳
    // const date2 = new Date(127060156936);
    // console.log(date2); 

    // new Date()允许接受一个yyyy-mm-dd格式的字符串作为参数
    // 或者"yyyy-mm-dd hh:mm:ss"格式的字符串作为参数
    // const date3 = new Date("2000-01-01 10:00:01");
    // console.log(date3);



    // 2. 日期对象的常用方法
    // const date = new Date();
    // const year = date.getFullYear(); // 2024 获取日期对象对应的年份
    // const month = date.getMonth(); // 8 月份的范围是0-11，需要自己加一
    // const day = date.getDate(); // 23 日期
    // const hour = date.getHours(); // 11 小时
    // const min = date.getMinutes(); // 7 分钟
    // const sec = date.getSeconds(); // 秒
    // date.getTime() // 获取时间戳
    
    // console.log(`${year}年${month + 1}月${day}日 ${hour}:${min}:${sec}`);



    const add0 = (n) => {
      return n < 10 ? "0" + n : n
    }

    const getDate = (timestamp, hasTime = true) => {
      // 如果传参了，就用传了的时间戳进行时间转换
      // 如果没传，就用当前的时间

      // hasTime表示的是是否需要时分秒，默认值是需要
      const date = timestamp ? new Date(timestamp) : new Date();
      const year = date.getFullYear(); // 2024 获取日期对象对应的年份
      const month = date.getMonth(); // 8 月份的范围是0-11，需要自己加一
      const day = date.getDate(); // 23 日期
      const hour = date.getHours(); // 11 小时
      const min = date.getMinutes(); // 7 分钟
      const sec = date.getSeconds(); // 秒
      
      return hasTime ? `${year}年${month + 1}月${day}日 ${add0(hour)}:${add0(min)}:${add0(sec)}` : `${year}年${month + 1}月${day}日`
    }
    console.log(getDate());








    // 今天是2024年9月30日，明天是几号?
    const date4 = new Date("2024-09-30");
    console.log(getDate(date4.getTime() + 1000 * 60 * 60 * 24, false));

    
    
    
    
    
    
  </script>
</body>
</html>